package com.huixiaodian.baselibrary.utils;

import android.graphics.Bitmap;
import android.util.Base64;

import java.io.ByteArrayOutputStream;

/**
 * @author Created by Kingly on 2020/9/24 9:42.
 * @description
 */
public class Base64Util {

    /**
     * 将Bitmap转换成Base64字符串
     *
     * @param bitmap
     * @return
     */
    public static String bitmapToBase64(Bitmap bitmap) {
        try{
            ByteArrayOutputStream bos = new ByteArrayOutputStream();
            bitmap.compress(Bitmap.CompressFormat.JPEG, 40, bos);//参数100表示不压缩
            byte[] bytes = bos.toByteArray();
            //转换来的base64码需要加前缀，必须是NO_WRAP参数，表示没有空格。
            return "data:image/jpeg;base64," + Base64.encodeToString(bytes, Base64.NO_WRAP);
            //转换来的base64码不需要需要加前缀，必须是NO_WRAP参数，表示没有空格。
            //return "data:image/jpeg;base64," + Base64.encodeToString(bytes, Base64.NO_WRAP);
        }catch (NullPointerException exception){
            exception.printStackTrace();
            return null;
        }
    }

    /**
     * 将base64的头去掉
     *
     * @param base64
     * @return
     */
    public static String base64ToNoHeaderBase64(String base64) {
        try{
            return base64.replace("data:image/jpeg;base64,", "");
        }catch (NullPointerException exception){
            exception.printStackTrace();
            return null;
        }
    }
}
